package com.yun.datastructure.linear.stack;



public interface Stack<E> {

    /**
     * 向栈顶压入元素
     * @param value 待压入的值
     * @return 压入成功返回ture，压入失败返回false
     */
    boolean push(E value);

    /**
     * 从栈顶弹出元素
     * @return 栈顶非空返回栈顶元素，否则返回null
     */
    E pop();

    /**
     * 返回栈顶元素，不弹出
     * @return 栈顶非空返回栈顶元素，否则返回null
     */
    E peek();

    /**
     * 判断栈是否为空
     * @return 栈为空返回ture，否则返回false
     */
    boolean isEmpty();

    /**
     * 判断栈是否已满
     * @return  栈已满返回ture，否则返回false
     */
    boolean isFull();
}
